package com.woniu.cloud.api;

import com.woniu.cloud.common.dto.Result;
import com.woniu.cloud.form.ScoreInsertGoodForm;
import com.woniu.cloud.form.ScoreUpdateGoodForm;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

@FeignClient(value = "shop",contextId = "ScoreGoodApi")
public interface ScoreGoodApi {

    /**
     * TODO 查询----------------------------------------------
     */

    /***
     * 商品查询
     * @param scoreGoodId 积分商品表Id
     * @return data为该商品详情
     */
    @GetMapping("getScoreGoodByScoreGoodId")
    Result getScoreGoodByScoreGoodId(@RequestParam("scoreGoodId") Integer scoreGoodId);

    /***
     * 商品检索功能
     * @param scoreGoodName 商品检索名
     * @return
     */
    @GetMapping("getScoreGoodByGoodName")
    Result getScoreGoodByGoodName(@RequestParam("scoreGoodName") String scoreGoodName,@RequestParam("pageIndex")Integer pageIndex);

//    /***
//     * 商品分类查询功能(根据类型查看)
//     * @param scoreGoodType 积分商品表类型
//     * @return data为积分商品表商品分类list
//     */
//    @GetMapping("getScoreGoodByScoreGoodType")
//    Result getScoreGoodByScoreGoodType(@RequestParam("scoreGoodType") String scoreGoodType,@RequestParam("pageIndex")Integer pageIndex);

    /**
     * TODO 添加----------------------------------------------
     */

    /***
     * 上架积分商品
     * @param scoreGoodForm 积分商品表前端传参对象
     * @return data为success/fail
     */
    @PostMapping("insertScoreGood")
    Result insertScoreGood(@RequestBody ScoreInsertGoodForm scoreGoodForm);

    /**
     * TODO 修改----------------------------------------------
     */

    /***
     * 修改商品信息
     * @param scoreUpdateGoodForm 积分商品表前端传参修改信息对象
     * @return data为success/fail
     */
    @PutMapping("updateScoreGood")
    Result updateScoreGood(@RequestBody ScoreUpdateGoodForm scoreUpdateGoodForm);

    /***
     * 库存修改
     * @param scoreGoodId 积分商品表Id
     * @param scoreGoodNum 积分商品库存
     * @return data为success/fail
     */
    @PutMapping("updateScoreGoodNumByScoreGoodId")
    Result updateScoreGoodNumByScoreGoodId(@RequestParam("scoreGoodId") Integer scoreGoodId,
                                                    @RequestParam("scoreGoodNum") Integer scoreGoodNum);

    /***
     * 库存修改
     * @param storeId 店铺Id
     * @param goodId 商品id
     * @return data为success/fail
     */
    @GetMapping("updateScoreGoodNumByScoreGoodId")
    Result getScoreGoodByStoreAndGood(@RequestParam("storeId") Integer storeId,
                                           @RequestParam("goodId") Integer goodId);


    /***
     * 销量修改
     * @param scoreGoodId 积分商品表Id
     * @param scoreGoodSellNum 销量数据
     * @return data为success/fail
     */
    @PutMapping("updateScoreGoodSellNumByScoreGoodId")
    Result updateScoreGoodSellNumByScoreGoodId(@RequestParam("scoreGoodId") Integer scoreGoodId,
                                               @RequestParam("scoreGoodSellNum") Integer scoreGoodSellNum);

    /***
     * 积分商品状态修改
     * @param scoreGoodId 积分商品表Id
     * @param scoreGoodStatus 0:售罄  1：正常
     * @return data为success/fail
     */
    @PutMapping("updateScoreGoodStatusByScoreGoodId")
    Result updateScoreGoodStatusByScoreGoodId(
            @RequestParam("scoreGoodId") Integer scoreGoodId,
            @RequestParam("scoreGoodStatus") Integer scoreGoodStatus);

    /**
     * TODO 删除----------------------------------------------
     */

    /***
     * 根据商品id删除商品
     * @param scoreGoodId 积分商品Id
     * @return data为success/fail
     */
    @DeleteMapping("deleteScoreGoodByScoreGoodId")
    Result deleteScoreGoodByScoreGoodId(@RequestParam("scoreGoodId") Integer scoreGoodId);

//    /***
//     *
//     * @return积分商品表商品分类
//     */
//    Result getScoreGoodScoreGoodTypeList();

}
